// ------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
// Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
// ------------------------------------------------------------

#pragma once
//
// External Header Files required by public ServiceModel header files
//
#include <string>

#include "Common/Common.h"

#define SECURITY_WIN32
#include <security.h>
#include <wincrypt.h>
#include <schannel.h>

#include "FabricCommon.h"
#include "FabricRuntime.h"
#include "FabricRuntime_.h"
#include "FabricTypes_.h"

#include "ServiceModel/ServiceModelPointers.h"
#include "ServiceModel/Constants.h"
#include "ServiceModel/ClientServerMessageBody.h"
#include "ServiceModel/SystemServiceMessageBody.h"
#include "ServiceModel/SystemServiceReplyMessageBody.h"

//
// Federation Types.
//
#include "ServiceModel/federation/NodeId.h"
#include "ServiceModel/federation/NodeInstance.h"
#include "ServiceModel/federation/NodeIdGenerator.h"

//
// Failover Types.
//
#include "ServiceModel/reliability/failover/NodeDeactivationIntent.h"
#include "ServiceModel/reliability/failover/NodeDeactivationStatus.h"
#include "ServiceModel/reliability/failover/SafetyCheckKind.h"
#include "ServiceModel/reliability/failover/SafetyCheck.h"
#include "ServiceModel/reliability/failover/NodeProgress.h"
#include "ServiceModel/reliability/failover/ApplicationMetricDescription.h"
#include "ServiceModel/reliability/failover/ApplicationCapacityDescription.h"
#include "ServiceModel/reliability/failover/ReconfigurationType.h"
#include "ServiceModel/reliability/failover/ReconfigurationResult.h"
#include "ServiceModel/reliability/failover/ServiceTypeUpdateKind.h"

//
// ServiceModel public header files
//

#include "ServiceModel/Priority.h"
#include "ServiceModel/ProgressUnitType.h"
#include "ServiceModel/ProgressUnit.h"
#include "ServiceModel/IPageContinuationToken.h"
#include "ServiceModel/ServiceModelMacros.h"
#include "ServiceModel/HMResource.h"
#include "ServiceModel/PublicApiHelper.h"
#include "ServiceModel/StringList.h"
#include "ServiceModel/AttributeList.h"
#include "ServiceModel/RolloutVersion.h"
#include "ServiceModel/ApplicationIdentifier.h"
#include "ServiceModel/ApplicationVersion.h"
#include "ServiceModel/VersionedApplicationIdentifier.h"
#include "ServiceModel/ServicePackageActivationContext.h"
#include "ServiceModel/ServicePackageIdentifier.h"
#include "ServiceModel/ServicePackageVersion.h"
#include "ServiceModel/ServicePackageVersionInstance.h"
#include "ServiceModel/VersionedServicePackageIdentifier.h"
#include "ServiceModel/ServiceTypeIdentifier.h"
#include "ServiceModel/VersionedServiceTypeIdentifier.h"
#include "ServiceModel/CodePackageIdentifier.h"
#include "ServiceModel/ApplicationIsolationPolicyType.h"
#include "ServiceModel/EntryPointType.h"
#include "ServiceModel/UpgradeType.h"
#include "ServiceModel/FabricUpgradeSpecification.h"
#include "ServiceModel/RollingUpgradeMode.h"
#include "ServiceModel/RunAsPolicyTypeEntryPointType.h"
#include "ServiceModel/RunAsPolicyDescription.h"
#include "ServiceModel/DebugParametersDescription.h"
#include "ServiceModel/PackageSharingPolicyTypeScope.h"
#include "ServiceModel/PackageSharingPolicyDescription.h"
#include "ServiceModel/RepositoryCredentialsDescription.h"
#include "ServiceModel/ResourceGovernancePolicyDescription.h"
#include "ServicePackageResourceGovernanceDescription.h"
#include "ServiceModel/EnvironmentVariableDescription.h"
#include "ServiceModel/EnvironmentVariablesDescription.h"
#include "ServiceModel/EnvironmentOverrideDescription.h"
#include "ServiceModel/DriverOptionDescription.h"
#include "ServiceModel/LogConfigDescription.h"
#include "ServiceModel/SecurityOptionsDescription.h"
#include "ServiceModel/ContainerVolumeDescription.h"
#include "ServiceModel/ContainerHealthConfigDescription.h"
#include "ServiceModel/ContainerCertificateDescription.h"
#include "ServiceModel/ImageTypeDescription.h"
#include "ServiceModel/ImageOverridesDescription.h"
#include "ServiceModel/PortBindingDescription.h"
#include "ServiceModel/ContainerIsolationMode.h"
#include "ServiceModel/HostType.h"
#include "ServiceModel/HostIsolationMode.h"
#include "ServiceModel/NetworkType.h"
#include "ServiceModel/NetworkConfigDescription.h"
#include "ServiceModel/ContainerPoliciesDescription.h"
#include "ServiceModel/DllHostIsolationPolicyType.h"
#include "ServiceModel/ExeEntryPointDescription.h"
#include "ServiceModel/ContainerEntryPointDescription.h"
#include "ServiceModel/AssemblyType.h"
#include "ServiceModel/DllHostEntryPointDescription.h"
#include "ServiceModel/EntryPointDescription.h"
#include "ServiceModel/CodePackageDescription.h"
#include "ServiceModel/DigestedCodePackageDescription.h"
#include "ServiceModel/ConfigPackageDescription.h"
#include "ServiceModel/DigestedConfigPackageDescription.h"
#include "ServiceModel/DataPackageDescription.h"
#include "ServiceModel/DigestedDataPackageDescription.h"
#include "ServiceModel/WeightType.h"
#include "ServiceModel/ServiceLoadMetricDescription.h"
#include "ServiceModel/ServicePlacementPolicyDescription.h"
#include "ServiceModel/DescriptionExtension.h"
#include "ServiceModel/ServiceTypeDescription.h"
#include "ServiceModel/ServiceGroupMemberDescription.h"
#include "ServiceModel/ServiceGroupTypeDescription.h"
#include "ServiceModel/DigestedServiceTypesDescription.h"
#include "ServiceModel/EndpointType.h"
#include "ServiceModel/ProtocolType.h"
#include "ServiceModel/GrantAccessType.h"
#include "ServiceModel/EndpointDescription.h"
#include "ServiceModel/EndpointOverrideDescription.h"
#include "ServiceModel/SecurityAccessPolicyTypeResourceType.h"
#include "ServiceModel/SecurityAccessPolicyDescription.h"
#include "ServiceModel/EndpointBindingPolicyDescription.h"
#include "ServiceModel/DigestedEndpointDescription.h"
#include "ServiceModel/endpointcertificatedescription.h"
#include "ServiceModel/ResourcesDescription.h"
#include "ServiceModel/ETWDescription.h"
#include "ServiceModel/ServiceDiagnosticsDescription.h"
#include "ServiceModel/DigestedResourcesDescription.h"
#include "ServiceModel/LogCollectionPolicyDescription.h"
#include "ServiceModel/DefaultRunAsPolicyDescription.h"
#include "ServiceModel/ServiceTypeHealthPolicy.h"
#include "ServiceModel/ApplicationHealthPolicy.h"
#include "ServiceModel/ClusterHealthPolicy.h"
#include "ServiceModel/ApplicationHealthPolicyMap.h"
#include "ServiceModel/ClusterHealthPolicies.h"
#include "ServiceModel/ClusterUpgradeHealthPolicy.h"
#include "ServiceModel/ApplicationPoliciesDescription.h"
#include "ServiceModel/ServicePackagePoliciesDescription.h"
#include "ServiceModel/ServiceManifestReference.h"
#include "ServiceModel/ApplicationParameter.h"
#include "ServiceModel/DeleteApplicationDescription.h"
#include "ServiceModel/DeleteServiceDescription.h"
#include "ServiceModel/ServiceManifestDescription.h"
#include "ServiceModel/ServicePackageDescription.h"
#include "ServiceModel/ResourceOverridesDescription.h"
#include "ServiceModel/ServiceManifestImportDescription.h"
#include "ServiceModel/NTLMAuthenticationPolicyDescription.h"
#include "ServiceModel/SecurityPrincipalAccountType.h"
#include "ServiceModel/SecurityGroupDescription.h"
#include "ServiceModel/SecurityUserDescription.h"
#include "ServiceModel/PrincipalsDescription.h"
#include "ServiceModel/ParameterDescription.h"
#include "ServiceModel/ParametersDescription.h"
#include "ServiceModel/LocalStoreDescription.h"
#include "ServiceModel/LocalStoreETWDescription.h"
#include "ServiceModel/FileStoreDescription.h"
#include "ServiceModel/FileStoreETWDescription.h"
#include "ServiceModel/AzureStoreBaseDescription.h"
#include "ServiceModel/AzureBlobDescription.h"
#include "ServiceModel/AzureBlobETWDescription.h"
#include "ServiceModel/CrashDumpSourceDestinationsDescription.h"
#include "ServiceModel/CrashDumpSourceDescription.h"
#include "ServiceModel/ETWSourceDestinationsDescription.h"
#include "ServiceModel/ETWSourceDescription.h"
#include "ServiceModel/FolderSourceDestinationsDescription.h"
#include "ServiceModel/FolderSourceDescription.h"
#include "ServiceModel/DiagnosticsDescription.h"
#include "ServiceModel/ApplicationManifestDescription.h"
#include "ServiceModel/DigestedEnvironmentDescription.h"
#include "ServiceModel/PartitionSchemeDescription.h"
#include "ServiceModel/PartitionDescription.h"
#include "ServiceModel/ServicePartitionDescription.h"
#include "ServiceModel/ServiceCorrelationScheme.h"
#include "ServiceModel/ServiceCorrelationDescription.h"
#include "ServiceModel/ApplicationServiceDescription.h"
#include "ServiceModel/ApplicationServiceTemplateDescription.h"
#include "ServiceModel/DefaultServiceDescription.h"
#include "ServiceModel/ApplicationDefaultServiceDescription.h"
#include "ServiceModel/ApplicationPackageReference.h"
#include "ServiceModel/ServicePackageReference.h"
#include "ServiceModel/SecretsCertificateDescription.h"
#include "ServiceModel/DigestedCertificateDescription.h"
#include "ServiceModel/ApplicationPackageDescription.h"
#include "ServiceModel/ApplicationInstanceDescription.h"
#include "ServiceModel/ServicePackageUpgradeSpecification.h"
#include "ServiceModel/ServiceTypeRemovalSpecification.h"
#include "ServiceModel/ApplicationUpgradeSpecification.h"
#include "ServiceModel/PackageConfigStore.h"
#include "ServiceModel/ApplicationStatus.h"
#include "ServiceModel/ApplicationTypeStatus.h"
#include "ServiceModel/ComposeDeploymentStatus.h"
#include "ServiceModel/QueryResultMacroDefinitions.h"
#include "ServiceModel/ApplicationQueryResult.h"
#include "ServiceModel/ApplicationQueryResultWrapper.h"
#include "ServiceModel/ApplicationTypeQueryResult.h"
#include "ServiceModel/ComposeDeploymentStatusQueryResult.h"
#include "ServiceModel/NodeDeactivationQueryResult.h"
#include "ServiceModel/NodeQueryResult.h"
#include "ServiceModel/ServiceQueryResult.h"
#include "ServiceModel/ServiceQueryResultWrapper.h"
#include "ServiceModel/naming/partitionkey.h"
#include "ServiceModel/naming/PartitionInfo.h"
#include "ServiceModel/ServicePartitionInformation.h"
#include "ServiceModel/LoadMetricInformation.h"
#include "ServiceModel/ClusterLoadInformationQueryResult.h"
#include "ServiceModel/NodeLoadMetricInformation.h"
#include "ServiceModel/NodeLoadInformationQueryResult.h"
#include "ServiceModel/DeploymentStatus.h"
#include "ServiceModel/DeployedServiceManifestQueryResult.h"
#include "ServiceModel/ApplicationLoadMetricInformation.h"
#include "ServiceModel/ApplicationLoadInformationQueryResult.h"
#include "ServiceModel/UnplacedReplicaInformationQueryResult.h"
#include "ServiceModel/HealthReportSendOptions.h"
#include "ServiceModel/HealthInformation.h"
#include "ServiceModel/EntityHealthInformation.h"
#include "ServiceModel/ClusterEntityHealthInformation.h"
#include "ServiceModel/NodeEntityHealthInformation.h"
#include "ServiceModel/PartitionEntityHealthInformation.h"
#include "ServiceModel/StatelessInstanceEntityHealthInformation.h"
#include "ServiceModel/StatefulReplicaEntityHealthInformation.h"
#include "ServiceModel/ServiceEntityHealthInformation.h"
#include "ServiceModel/ApplicationEntityHealthInformation.h"
#include "ServiceModel/DeployedApplicationEntityHealthInformation.h"
#include "ServiceModel/DeployedServicePackageEntityHealthInformation.h"
#include "ServiceModel/HealthReport.h"
#include "ServiceModel/HealthEvent.h"
#include "ServiceModel/ApplicationAggregatedHealthState.h"
#include "ServiceModel/DeployedApplicationAggregatedHealthState.h"
#include "ServiceModel/ReplicaAggregatedHealthState.h"
#include "ServiceModel/PartitionAggregatedHealthState.h"
#include "ServiceModel/DeployedServicePackageAggregatedHealthState.h"
#include "ServiceModel/ServiceAggregatedHealthState.h"
#include "ServiceModel/NodeAggregatedHealthState.h"
#include "ServiceModel/HealthStateChunkList.h"
#include "ServiceModel/NodeHealthStateChunk.h"
#include "ServiceModel/NodeHealthStateChunkList.h"
#include "ServiceModel/ReplicaHealthStateChunk.h"
#include "ServiceModel/ReplicaHealthStateChunkList.h"
#include "ServiceModel/PartitionHealthStateChunk.h"
#include "ServiceModel/PartitionHealthStateChunkList.h"
#include "ServiceModel/ServiceHealthStateChunk.h"
#include "ServiceModel/ServiceHealthStateChunkList.h"
#include "ServiceModel/DeployedServicePackageHealthStateChunk.h"
#include "ServiceModel/DeployedServicePackageHealthStateChunkList.h"
#include "ServiceModel/DeployedApplicationHealthStateChunk.h"
#include "ServiceModel/DeployedApplicationHealthStateChunkList.h"
#include "ServiceModel/ApplicationHealthStateChunk.h"
#include "ServiceModel/ApplicationHealthStateChunkList.h"
#include "ServiceModel/ClusterHealthChunk.h"
#include "ServiceModel/management/HealthManager/EntityKind.h"
#include "ServiceModel/management/HealthManager/HealthStateCount.h"
#include "ServiceModel/management/HealthManager/EntityKindHealthStateCount.h"
#include "ServiceModel/management/HealthManager/HealthStatistics.h"
#include "ServiceModel/TestCommandListQueryResult.h"
#include "ServiceModel/HealthEvaluationBase.h"
#include "ServiceModel/HealthEvaluation.h"
#include "ServiceModel/HealthEvaluationWithChildrenBase.h"
#include "ServiceModel/EventHealthEvaluation.h"
#include "ServiceModel/ReplicasHealthEvaluation.h"
#include "ServiceModel/PartitionsHealthEvaluation.h"
#include "ServiceModel/ServicesHealthEvaluation.h"
#include "ServiceModel/NodesHealthEvaluation.h"
#include "ServiceModel/ApplicationsHealthEvaluation.h"
#include "ServiceModel/ApplicationTypeApplicationsHealthEvaluation.h"
#include "ServiceModel/DeployedApplicationsHealthEvaluation.h"
#include "ServiceModel/DeployedServicePackagesHealthEvaluation.h"
#include "ServiceModel/UDNodesHealthEvaluation.h"
#include "ServiceModel/UDDeployedApplicationsHealthEvaluation.h"
#include "ServiceModel/SystemApplicationHealthEvaluation.h"
#include "ServiceModel/NodeHealthEvaluation.h"
#include "ServiceModel/ReplicaHealthEvaluation.h"
#include "ServiceModel/PartitionHealthEvaluation.h"
#include "ServiceModel/ServiceHealthEvaluation.h"
#include "ServiceModel/DeployedServicePackageHealthEvaluation.h"
#include "ServiceModel/DeployedApplicationHealthEvaluation.h"
#include "ServiceModel/ApplicationHealthEvaluation.h"
#include "ServiceModel/DeltaNodesCheckHealthEvaluation.h"
#include "ServiceModel/UpgradeDomainDeltaNodesCheckHealthEvaluation.h"
#include "ServiceModel/EntityHealthBase.h"
#include "ServiceModel/ClusterHealth.h"
#include "ServiceModel/NodeHealth.h"
#include "ServiceModel/ReplicaHealth.h"
#include "ServiceModel/PartitionHealth.h"
#include "ServiceModel/ServiceHealth.h"
#include "ServiceModel/ApplicationHealth.h"
#include "ServiceModel/DeployedServicePackageHealth.h"
#include "ServiceModel/DeployedApplicationHealth.h"
#include "ServiceModel/ServiceReplicaQueryResult.h"
#include "ServiceModel/reliability/failover/Epoch.h"
#include "ServiceModel/ServicePartitionQueryResult.h"
#include "ServiceModel/HealthAttributeNames.h"
#include "ServiceModel/HealthEventsFilter.h"
#include "ServiceModel/HealthStateFilterList.h"
#include "ServiceModel/NodeHealthStateFilter.h"
#include "ServiceModel/DeployedServicePackageHealthStateFilter.h"
#include "ServiceModel/DeployedApplicationHealthStateFilter.h"
#include "ServiceModel/ReplicaHealthStateFilter.h"
#include "ServiceModel/PartitionHealthStateFilter.h"
#include "ServiceModel/ServiceHealthStateFilter.h"
#include "ServiceModel/ApplicationHealthStateFilter.h"
#include "ServiceModel/NodeHealthStatesFilter.h"
#include "ServiceModel/ReplicaHealthStatesFilter.h"
#include "ServiceModel/PartitionHealthStatesFilter.h"
#include "ServiceModel/ServiceHealthStatesFilter.h"
#include "ServiceModel/ApplicationHealthStatesFilter.h"
#include "ServiceModel/DeployedApplicationHealthStatesFilter.h"
#include "ServiceModel/DeployedServicePackageHealthStatesFilter.h"
#include "ServiceModel/HealthStatisticsFilter.h"
#include "ServiceModel/ApplicationHealthStatisticsFilter.h"
#include "ServiceModel/DeployedApplicationHealthStatisticsFilter.h"
#include "ServiceModel/ServiceHealthStatisticsFilter.h"
#include "ServiceModel/PartitionHealthStatisticsFilter.h"
#include "ServiceModel/ClusterHealthStatisticsFilter.h"
#include "ServiceModel/QueryMetadataQueryResult.h"
#include "ServiceModel/FileXmlSettingsStore.h"
#include "ServiceModel/ApplicationDescriptionWrapper.h"
#include "ServiceModel/ApplicationUpdateDescriptionWrapper.h"
#include "ServiceModel/MonitoredUpgradeFailureAction.h"
#include "ServiceModel/UpgradeHelper.h"
#include "ServiceModel/RollingUpgradeUpdateDescription.h"
#include "ServiceModel/RollingUpgradeMonitoringPolicy.h"
#include "ServiceModel/ServiceTypeQueryResult.h"
#include "ServiceModel/ServiceGroupMemberTypeQueryResult.h"
#include "ServiceModel/EntryPointStatus.h"
#include "ServiceModel/DeployedApplicationQueryResult.h"
#include "ServiceModel/DeployedServiceTypeQueryResult.h"
#include "ServiceModel/ReconfigurationInformation.h"
#include "ServiceModel/DeployedServiceReplicaQueryResult.h"
#include "ServiceModel/CodePackageEntryPointStatistics.h"
#include "ServiceModel/CodePackageEntryPoint.h"
#include "ServiceModel/DeployedCodePackageQueryResult.h"
#include "ServiceModel/ApplicationUpgradeDescriptionWrapper.h"
#include "ServiceModel/FabricUpgradeDescriptionWrapper.h"
#include "ServiceModel/ComposeDeploymentUpgradeDescription.h"
#include "ServiceModel/ComposeDeploymentUpgradeState.h"
#include "ServiceModel/SystemServiceApplicationNameHelper.h"
#include "ServiceModel/ServiceModelConfig.h"
#include "ServiceModel/ServiceGroup.Serialization.h"
#include "ServiceModel/InfrastructureNodeDescription.h"
#include "ServiceModel/InfrastructureDescription.h"
#include "ServiceModel/WindowsFabricDeploymentDescription.h"
#include "ServiceModel/TargetInformationFileDescription.h"
#include "ServiceModel/ApplicationTypeQueryContinuationToken.h"
#include "ServiceModel/Parser.h"
#include "ServiceModel/Serializer.h"
#include "ServiceModel/Claim.h"
#include "ServiceModel/ClaimsCollection.h"
#include "ServiceModel/TokenValidationServiceMetadata.h"
#include "ServiceModel/LoadMetricReport.h"
#include "ServiceModel/ReplicatorStatusQueryResult.h"
#include "ServiceModel/ReplicaStatusQueryResult.h"
#include "ServiceModel/KeyValueStoreQueryResult.h"
#include "ServiceModel/RemoteReplicatorAcknowledgementDetail.h"
#include "ServiceModel/RemoteReplicatorAcknowledgementStatus.h"
#include "ServiceModel/RemoteReplicatorStatus.h"
#include "ServiceModel/ReplicatorQueueStatus.h"
#include "ServiceModel/PrimaryReplicatorStatusQueryResult.h"
#include "ServiceModel/SecondaryReplicatorStatusQueryResult.h"
#include "ServiceModel/DeployedServiceReplicaDetailQueryResult.h"
#include "ServiceModel/ClientServerTransportType.h"
#include "ServiceModel/PartitionLoadInformationQueryResult.h"
#include "ServiceModel/ReplicaLoadInformationQueryResult.h"
#include "ServiceModel/ProvisionedFabricCodeVersionQueryResultItem.h"
#include "ServiceModel/ProvisionedFabricConfigVersionQueryResultItem.h"
#include "ServiceModel/ServiceGroupMemberQueryResult.h"
#include "ServiceModel/ServiceNameQueryResult.h"
#include "ServiceModel/ApplicationNameQueryResult.h"
#include "ServiceModel/ServiceNameQueryResultWrapper.h"
#include "ServiceModel/ApplicationNameQueryResultWrapper.h"
#include "ServiceModel/ServiceGroupFromTemplateDescription.h"
#include "ServiceModel/ServiceFromTemplateDescription.h"

//
// Internal Query objects
//
#include "ServiceModel/InternalDeletedApplicationsQueryObject.h"
#include "ServiceModel/InternalProvisionedApplicationTypeQueryResult.h"
#include "ServiceModel/ServicePackageSharingType.h"
#include "ServiceModel/PackageSharingPolicyQueryObject.h"
#include "ServiceModel/PackageSharingPolicyList.h"
#include "ServiceModel/DeployServicePackageToNodeMessage.h"

//
// Repair Manager
//

#include "ServiceModel/management/RepairManager/RepairImpactKind.h"
#include "ServiceModel/management/RepairManager/RepairResourceIdentifierKind.h"
#include "ServiceModel/management/RepairManager/RepairTargetKind.h"
#include "ServiceModel/management/RepairManager/RepairTaskResult.h"
#include "ServiceModel/management/RepairManager/RepairTaskState.h"
#include "ServiceModel/management/RepairManager/RepairTaskFlags.h"
#include "ServiceModel/management/RepairManager/RepairTaskHealthCheckState.h"

//
// Transport Types.
//
#include "ServiceModel/transport/ServicePrincipalName.h"
#include "ServiceModel/transport/SecurityProvider.h"
#include "ServiceModel/transport/ProtectionLevel.h"
#include "ServiceModel/transport/RoleMask.h"
#include "ServiceModel/transport/SecuritySettings.h"
#include "ServiceModel/transport/ClaimsRetrievalMetadata.h"
#include "ServiceModel/transport/ComSecurityCredentialsResult.h"

//
// Access Control
//
#include "ServiceModel/AccessControl/SecurityPrincipal.h"
#include "ServiceModel/AccessControl/ResourceType.h"
#include "ServiceModel/AccessControl/ResourceIdentifier.h"
#include "ServiceModel/AccessControl/FabricAcl.h"

#include "ServiceModel/FabricClientSettings.h"

//
// Failover Types.
//
#include "ServiceModel/reliability/failover/FaultType.h"
#include "ServiceModel/reliability/failover/ServiceReplicaSet.h"
#include "ServiceModel/reliability/failover/ServiceLoadMetricDescription.h"
#include "ServiceModel/reliability/failover/GenerationNumber.h"
#include "ServiceModel/reliability/failover/ServiceCorrelationDescription.h"
#include "ServiceModel/reliability/failover/ConsistencyUnitId.h"
#include "ServiceModel/reliability/failover/ServiceDescription.h"
#include "ServiceModel/reliability/failover/KeyRange.h"
#include "ServiceModel/reliability/failover/ConsistencyUnitDescription.h"
#include "ServiceModel/reliability/failover/ServiceTableEntry.h"
#include "ServiceModel/reliability/failover/ServiceTableEntryNotification.h"
#include "ServiceModel/reliability/failover/ServiceNotificationFilterFlags.h"
#include "ServiceModel/reliability/failover/ServiceNotificationFilter.h"
#include "ServiceModel/reliability/failover/VersionedConsistencyUnitId.h"
#include "ServiceModel/reliability/failover/FailoverUnitId.h"
#include "ServiceModel/reliability/failover/PartitionId.h"
#include "ServiceModel/reliability/failover/DeactivateNodeRequestMessageBody.h"
#include "ServiceModel/reliability/failover/NodeUpgradePhase.h"
#include "ServiceModel/reliability/failover/UpgradeSafetyCheckKind.h"
#include "ServiceModel/reliability/failover/UpgradeSafetyCheck.h"
#include "ServiceModel/reliability/failover/UpgradeProgress.h"


//
// Replication Types.
//
#include "ServiceModel/reliability/replication/REPointers.h"
#include "ServiceModel/reliability/replication/REConfigMacros.h"
#include "ServiceModel/reliability/replication/REConfigBase.h"
#include "ServiceModel/reliability/replication/REConfigValues.h"
#include "ServiceModel/reliability/replication/ReplicatorSettings.h"
#include "ServiceModel/reliability/replication/ComReplicatorSettingsResult.h"

//
// Store Types.
//
#include "ServiceModel/store/RestoreSettings.h"

//
// Data Types
//

#include "ServiceModel/data/txnreplicator/TRConfigPointers.h"
#include "ServiceModel/data/txnreplicator/TRConfigMacros.h"
#include "ServiceModel/data/txnreplicator/TRConfigBase.h"
#include "ServiceModel/data/txnreplicator/TRConfigValues.h"
#include "ServiceModel/data/txnreplicator/TransactionalReplicatorSettings.h"
#include "ServiceModel/data/txnreplicator/ComTransactionalReplicatorSettingsResult.h"

#include "ServiceModel/data/txnreplicator/SLConfigPointers.h"
#include "ServiceModel/data/txnreplicator/SLConfigMacros.h"
#include "ServiceModel/data/txnreplicator/SLConfigBase.h"
#include "ServiceModel/data/txnreplicator/SLConfigValues.h"
#include "ServiceModel/data/txnreplicator/KtlLoggerSharedLogSettings.h"
#include "ServiceModel/data/txnreplicator/KvsSystemServiceConfig.h"


//
// management Types
//
#include "ServiceModel/management/clustermanager/UpgradeFailureReason.h"
#include "ServiceModel/management/clustermanager/CommonUpgradeContextData.h"
#include "ServiceModel/management/clustermanager/FabricUpgradeState.h"
#include "ServiceModel/management/clustermanager/ModifyUpgradeHelper.h"
#include "ServiceModel/management/clustermanager/ApplicationPackageCleanupPolicy.h"
#include "ServiceModel/management/clustermanager/ApplicationDefinitionKind.h"
#include "ServiceModel/management/clustermanager/ApplicationTypeDefinitionKind.h"
#include "ServiceModel/management/clustermanager/ApplicationUpgradeUpdateDescription.h"
#include "ServiceModel/management/clustermanager/ApplicationUpgradeState.h"
#include "ServiceModel/management/clustermanager/ApplicationUpgradeDescription.h"
#include "ServiceModel/management/clustermanager/ApplicationUpgradeStatusDescription.h"
#include "ServiceModel/management/clustermanager/FabricUpgradeUpdateDescription.h"
#include "ServiceModel/management/clustermanager/FabricUpgradeDescription.h"
#include "ServiceModel/management/clustermanager/FabricUpgradeStatusDescription.h"
#include "ServiceModel/management/clustermanager/NodeTask.h"
#include "ServiceModel/management/clustermanager/NodeTaskDescription.h"
#include "ServiceModel/management/clustermanager/ProvisionApplicationTypeDescriptionBase.h"
#include "ServiceModel/management/clustermanager/ImageStoreProvisionApplicationTypeDescription.h"
#include "ServiceModel/management/clustermanager/ExternalStoreProvisionApplicationTypeDescription.h"
#include "ServiceModel/management/clustermanager/ProvisionApplicationTypeDescription.h"
#include "ServiceModel/management/clustermanager/UnprovisionApplicationTypeDescription.h"
#include "ServiceModel/management/clustermanager/TaskInstance.h"
#include "ServiceModel/management/clustermanager/InfrastructureTaskDescription.h"
#include "ServiceModel/management/clustermanager/InfrastructureTaskState.h"
#include "ServiceModel/management/clustermanager/DeleteServiceMessageBody.h"
#include "ServiceModel/management/clustermanager/ReportUpgradeHealthMessageBody.h"
#include "ServiceModel/management/clustermanager/ClusterManifestQueryDescription.h"

#include "ServiceModel/management/ImageStore/Constants.h"
#include "ServiceModel/management/ImageStore/CopyFlag.h"
#include "ServiceModel/management/ImageStore/ImageStoreCopyDescription.h"
#include "ServiceModel/management/ImageStore/ImageStoreListDescription.h"

#include "ServiceModel/ComposeDeploymentUpgradeProgress.h"

//
// Query
//

#include "ServiceModel/InfrastructureTaskQueryResult.h"
#include "ServiceModel/ContainerInfoData.h"
#include "ServiceModel/ContainerInfoArgs.h"
#include "ServiceModel/ContainerInfoType.h"
#include "ServiceModel/ContainerInfoArgMap.h"
#include "ServiceModel/PagingStatus.h"
#include "ServiceModel/ListPager.h"
#include "ServiceModel/QueryResultHelpersEnum.h"
#include "ServiceModel/QueryResultListWrapperBase.h"
#include "ServiceModel/QueryResultListWrapper.h"
#include "ServiceModel/QueryResultHelpers.h"
#include "ServiceModel/QueryResultWrapperString.h"
#include "ServiceModel/QueryResult.h"
#include "ServiceModel/QueryArgumentMap.h"
#include "ServiceModel/Query/QueryType.h"
#include "ServiceModel/Query/QueryNames.h"
#include "ServiceModel/Query/QueryRequestMessageBody.h"
#include "ServiceModel/Query/QueryResourceProperties.h"
#include "ServiceModel/ClusterHealthQueryDescription.h"
#include "ServiceModel/NodeHealthQueryDescription.h"
#include "ServiceModel/ApplicationHealthQueryDescription.h"
#include "ServiceModel/ApplicationTypeQueryDescription.h"
#include "ServiceModel/ComposeDeploymentStatusQueryDescription.h"
#include "ServiceModel/ServiceHealthQueryDescription.h"
#include "ServiceModel/ServiceQueryDescription.h"
#include "ServiceModel/PartitionHealthQueryDescription.h"
#include "ServiceModel/ReplicaHealthQueryDescription.h"
#include "ServiceModel/DeployedApplicationHealthQueryDescription.h"
#include "ServiceModel/DeployedServicePackageHealthQueryDescription.h"
#include "ServiceModel/ClusterHealthChunkQueryDescription.h"
#include "ServiceModel/QueryPagingDescription.h"
#include "ServiceModel/DeployedApplicationQueryDescription.h"
#include "ServiceModel/ApplicationQueryDescription.h"

//
// FileStoreService Types.
//
#include "ServiceModel/management/FileStoreService/FileState.h"
#include "ServiceModel/management/FileStoreService/StoreFileVersion.h"
#include "ServiceModel/management/FileStoreService/StoreFileInfo.h"
#include "ServiceModel/management/FileStoreService/StoreFolderInfo.h"
#include "ServiceModel/management/FileStoreService/storecontentinfo.h"
#include "ServiceModel/management/FileStoreService/uploadsessioninfo.h"
#include "ServiceModel/management/FileStoreService/uploadsession.h"
#include "ServiceModel/management/FileStoreService/StorePagedContentInfo.h"

//
// Naming Types.
//
#include "ServiceModel/naming/PartitionedServiceDescWrapper.h"
#include "ServiceModel/naming/NamingUriWrapper.h"
#include "ServiceModel/naming/NameDescription.h"
#include "ServiceModel/naming/ServiceEndpointsUtility.h"
#include "ServiceModel/naming/ServiceLocationVersion.h"
#include "ServiceModel/naming/ServiceResolutionRequestData.h"
#include "ServiceModel/naming/EnumerateSubNamesToken.h"
#include "ServiceModel/naming/EnumerateSubNamesResult.h"
#include "ServiceModel/naming/PagedSubNameInfoList.h"
#include "ServiceModel/naming/NamePropertyOperationType.h"
#include "ServiceModel/naming/NamePropertyMetadata.h"
#include "ServiceModel/naming/NamePropertyMetadataResult.h"
#include "ServiceModel/naming/NameProperty.h"
#include "ServiceModel/naming/EnumeratePropertiesToken.h"
#include "ServiceModel/naming/EnumeratePropertiesResult.h"
#include "ServiceModel/naming/PropertyValueDescription.h"
#include "ServiceModel/naming/PropertyDescription.h"
#include "ServiceModel/naming/PropertyInfo.h"
#include "ServiceModel/naming/PagedPropertyInfoList.h"
#include "ServiceModel/naming/PropertyBatchOperationDescription.h"
#include "ServiceModel/naming/PropertyBatchDescription.h"
#include "ServiceModel/naming/PutPropertyBatchOperationDescription.h"
#include "ServiceModel/naming/GetPropertyBatchOperationDescription.h"
#include "ServiceModel/naming/CheckExistsPropertyBatchOperationDescription.h"
#include "ServiceModel/naming/CheckSequencePropertyBatchOperationDescription.h"
#include "ServiceModel/naming/CheckValuePropertyBatchOperationDescription.h"
#include "ServiceModel/naming/NamePropertyOperation.h"
#include "ServiceModel/naming/NamePropertyOperationBatch.h"
#include "ServiceModel/naming/NamingErrorCategories.h"
#include "ServiceModel/naming/NamePropertyOperationBatchResult.h"
#include "ServiceModel/naming/PartitionKind.h"
#include "ServiceModel/naming/RepartitionDescription.h"
#include "ServiceModel/naming/NamedRepartitionDescription.h"
#include "ServiceModel/naming/PartitionedServiceDescriptor.h"
#include "ServiceModel/naming/ServiceGroupDescriptor.h"
#include "ServiceModel/naming/ServiceGroupServiceDescription.h"
#include "ServiceModel/naming/NameRangeTuple.h"
#include "ServiceModel/naming/ResolvedServicePartitionMetadata.h"
#include "ServiceModel/naming/ServiceEndpointInformationWrapper.h"
#include "ServiceModel/naming/ResolvedServicePartitionWrapper.h"
#include "ServiceModel/naming/ResolvedServicePartition.h"
#include "ServiceModel/naming/AddressDetectionFailure.h"
#include "ServiceModel/naming/ServiceLocationNotificationRequestData.h"
#include "ServiceModel/naming/ServiceGroupMemberDescriptionAdaptor.h"
#include "ServiceModel/naming/ServiceGroupDescriptionAdaptor.h"
#include "ServiceModel/naming/CreateServiceMessageBody.h"
#include "ServiceModel/naming/ServiceUpdateDescription.h"
#include "ServiceModel/naming/EnumerateSubNamesRequest.h"
#include "ServiceModel/naming/EnumeratePropertiesRequest.h"
#include "ServiceModel/naming/UserServiceState.h"
#include "ServiceModel/naming/SetAclRequest.h"
#include "ServiceModel/naming/GetAclRequest.h"
#include "ServiceModel/naming/ServiceNotificationPageId.h"
#include "ServiceModel/naming/ServiceNotification.h"
#include "ServiceModel/naming/GatewayDescription.h"
#include "ServiceModel/naming/PropertyBatchInfoType.h"
#include "ServiceModel/naming/PropertyBatchInfo.h"

//
// ServiceGroup Types.
//
//
#include "ServiceModel/ServiceGroup/ServiceGroupConstants.h"
#include "ServiceModel/ServiceGroup/Utility.h"


// TokenValidationService Types.
//
#include "ServiceModel/management/TokenValidationService/ValidateTokenMessageBody.h"
#include "ServiceModel/management/TokenValidationService/TokenValidationMessage.h"

//
// InfrastructureService Types.
//
#include "ServiceModel/management/InfrastructureService/ReportTaskMessageBody.h"
#include "ServiceModel/management/InfrastructureService/RunCommandMessageBody.h"
#include "ServiceModel/management/InfrastructureService/RunCommandReplyMessageBody.h"

//
// FaultAnalysisService Types.
//
#include "ServiceModel/management/FaultAnalysisService/PartitionSelectorType.h"
#include "ServiceModel/management/FaultAnalysisService/DataLossMode.h"
#include "ServiceModel/management/FaultAnalysisService/TestCommandProgressState.h"
#include "ServiceModel/management/FaultAnalysisService/PartitionSelector.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeDataLossDescription.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeDataLossMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/SelectedPartition.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeDataLossResult.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeDataLossProgress.h"
#include "ServiceModel/management/FaultAnalysisService/GetInvokeDataLossProgressMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/GetInvokeDataLossProgressReplyMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/CancelTestCommandDescription.h"
#include "ServiceModel/management/FaultAnalysisService/CancelTestCommandMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/FASResource.h"

#include "ServiceModel/management/FaultAnalysisService/NodeResult.h"
#include "ServiceModel/management/FaultAnalysisService/DeployedCodePackageResult.h"
#include "ServiceModel/management/FaultAnalysisService/PrimaryMoveResult.h"
#include "ServiceModel/management/FaultAnalysisService/SecondaryMoveResult.h"
#include "ServiceModel/management/FaultAnalysisService/MovePrimaryStatus.h"
#include "ServiceModel/management/FaultAnalysisService/MoveSecondaryStatus.h"
#include "ServiceModel/management/FaultAnalysisService/RestartNodeStatus.h"
#include "ServiceModel/management/FaultAnalysisService/StartNodeStatus.h"
#include "ServiceModel/management/FaultAnalysisService/StopNodeStatus.h"
#include "ServiceModel/management/FaultAnalysisService/RestartDeployedCodePackageStatus.h"

#include "ServiceModel/management/FaultAnalysisService/QuorumLossMode.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeQuorumLossDescription.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeQuorumLossMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeQuorumLossResult.h"
#include "ServiceModel/management/FaultAnalysisService/InvokeQuorumLossProgress.h"
#include "ServiceModel/management/FaultAnalysisService/GetInvokeQuorumLossProgressMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/GetInvokeQuorumLossProgressReplyMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/RestartPartitionMode.h"
#include "ServiceModel/management/FaultAnalysisService/RestartPartitionDescription.h"
#include "ServiceModel/management/FaultAnalysisService/RestartPartitionMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/RestartPartitionResult.h"
#include "ServiceModel/management/FaultAnalysisService/RestartPartitionProgress.h"
#include "ServiceModel/management/FaultAnalysisService/NodeTransitionResult.h"
#include "ServiceModel/management/FaultAnalysisService/NodeTransitionProgress.h"
#include "ServiceModel/management/FaultAnalysisService/GetRestartPartitionProgressMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/GetRestartPartitionProgressReplyMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/StartNodeDescriptionUsingNodeName.h"
#include "ServiceModel/management/FaultAnalysisService/StartNodeTransitionDescription.h"
#include "ServiceModel/management/FaultAnalysisService/StopNodeDescriptionUsingNodeName.h"
#include "ServiceModel/management/FaultAnalysisService/StopNodeDescriptionInternal.h"

#include "ServiceModel/management/FaultAnalysisService/RestartDeployedCodePackageDescriptionUsingNodeName.h"
#include "ServiceModel/management/FaultAnalysisService/MovePrimaryDescriptionUsingNodeName.h"
#include "ServiceModel/management/FaultAnalysisService/MoveSecondaryDescriptionUsingNodeName.h"
#include "ServiceModel/management/FaultAnalysisService/StartNodeTransitionMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/GetNodeTransitionProgressMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/GetNodeTransitionProgressReplyMessageBody.h"

// UpgradeOrchestrationService Types

#include "ServiceModel/management/UpgradeOrchestrationService/StartUpgradeDescription.h"
#include "ServiceModel/management/UpgradeOrchestrationService/StartUpgradeMessageBody.h"
#include "ServiceModel/management/UpgradeOrchestrationService/OrchestrationUpgradeState.h"
#include "ServiceModel/management/UpgradeOrchestrationService/OrchestrationUpgradeProgress.h"
#include "ServiceModel/management/UpgradeOrchestrationService/GetUpgradeStatusReplyMessageBody.h"
#include "ServiceModel/management/UpgradeOrchestrationService/GetClusterConfigurationReplyMessageBody.h"
#include "ServiceModel/management/UpgradeOrchestrationService/UpgradeOrchestrationServiceState.h"
#include "ServiceModel/management/UpgradeOrchestrationService/GetClusterConfigurationMessageBody.h"
//
//  Chaos types
//
#include "ServiceModel/management/FaultAnalysisService/Chaos/EventContextMap.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosTargetFilter.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosParameters.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/StartChaosDescription.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosReportFilter.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/GetChaosReportDescription.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/StartChaosMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/StopChaosMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosEventBase.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/StartedEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ExecutingFaultsEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ValidationFailedEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/TestErrorEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/StoppedEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/WaitingEvent.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosStatus.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/ChaosReport.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/GetChaosReportMessageBody.h"
#include "ServiceModel/management/FaultAnalysisService/Chaos/GetChaosReportReplyMessageBody.h"

//
// HealthManager Types.
//
#include "ServiceModel/management/HealthManager/SequenceStreamInformation.h"
#include "ServiceModel/management/HealthManager/ReportHealthMessageBody.h"
#include "ServiceModel/management/HealthManager/SequenceStreamId.h"
#include "ServiceModel/management/HealthManager/GetSequenceStreamProgressMessageBody.h"
#include "ServiceModel/management/HealthManager/HealthReportResult.h"
#include "ServiceModel/management/HealthManager/SequenceStreamResult.h"
#include "ServiceModel/management/HealthManager/ReportHealthReplyMessageBody.h"
#include "ServiceModel/management/HealthManager/GetSequenceStreamProgressReplyMessageBody.h"
#include "ServiceModel/management/HealthManager/ClusterUpgradeStateSnapshot.h"

//
// Hosting Types.
//
#include "ServiceModel/hosting2/ServiceTypeRegistration.h"
#include "ServiceModel/hosting2/ServiceTypeRegistrationEventArgs.h"
#include "ServiceModel/hosting2/ServiceTypeStatusEventArgs.h"
#include "ServiceModel/hosting2/RuntimeClosedEventArgs.h"
#include "ServiceModel/hosting2/ApplicationHostClosedEventArgs.h"
#include "ServiceModel/hosting2/ServicePackageDownloadSpecification.h"
#include "ServiceModel/hosting2/ApplicationDownloadSpecification.h"
#include "ServiceModel/hosting2/ServicePackageInstanceIdentifier.h"
#include "ServiceModel/hosting2/ServiceTypeInstanceIdentifier.h"
#include "ServiceModel/hosting2/CodePackageInstanceIdentifier.h"
#include "ServiceModel/hosting2/ContainerDescription.h"
#include "ServiceModel/hosting2/ProcessDebugParameters.h"
#include "ServiceModel/hosting2/ProcessDescription.h"
#include "ServiceModel/hosting2/ContainerImageDescription.h"
#include "ServiceModel/hosting2/ContainerActivationArgs.h"
#include "ServiceModel/hosting2/ContainerDeactivationArgs.h"
#include "ServiceModel/hosting2/ContainerEventDescription.h"
#include "ServiceModel/hosting2/ContainerEventNotification.h"
#include "ServiceModel/hosting2/ContainerApiExecutionArgs.h"
#include "ServiceModel/hosting2/ContainerApiExecutionResponse.h"
